The present invention relates to keyboard data entry methods and more particularly to a method an apparatus for entering data in keyboards with multi-tap keys.
Multi-tap keyboards are typically used in reduced keyboard applications such as telephones, pagers, personal digital assistants (PDAs) and any other device that has a keyboard or keypad with keys that have more than one function. For example, a typical telephone or cellular telephone includes a 12-key keyboard, keys xe2x80x9c1-9xe2x80x9d, xe2x80x9c0xe2x80x9d, xe2x80x9c*xe2x80x9d and xe2x80x9c#xe2x80x9d. Typically, keys xe2x80x9c2-9xe2x80x9d also include the alphabetical characters. Keys xe2x80x9c2-9xe2x80x9d are therefore multiple function/character keys. For example, typically the number xe2x80x9c2xe2x80x9d key also includes the letters xe2x80x9cAxe2x80x9d, xe2x80x9cBxe2x80x9d and xe2x80x9cCxe2x80x9d. Often a user desires to enter alphabetical data into the telephone such as for storing a name and a telephone number into a memory portion of the telephone. Large amounts of alphabetical data can often be required when the telephone is used to access the Internet, because the user must enter desired Internet addresses and other data on a selected Internet web site, such as personal and/or financial information when placing an order.
One type of multiple function/character keyboard is a multi-tap keyboard. FIG. 1 shows one method 100 of using a multi-tap keyboard. First a selected multi-tap key is pressed in block 104. Pressing a key starts a timer and displays the first character of the multi-tap key. For example, on the first press of the xe2x80x9c2, A, B, Cxe2x80x9d key, a xe2x80x9c2xe2x80x9d is displayed. Next, if the displayed character xe2x80x9c2xe2x80x9d is not the desired character, then the timer is checked in block 110. If the timer has expired, i.e. a cursor advance time delay has elapsed, then the displayed character is output in block 140 as the desired character and the cursor is advanced to the next character position. If the cursor advance time delay has not elapsed in block 110, and then the selected multi-tap key is pressed again in block 112, then the cursor advance time delay is reset and restarted and the subsequent character xe2x80x9cAxe2x80x9d is displayed in block 114. Next, the displayed character is examined again in block 108. Alternatively, the displayed character can also be a selected function and when the cursor advance time delay has expired the selected function is automatically executed.
Returning to block 108, if the displayed character xe2x80x9cAxe2x80x9d is the desired character, then the cursor advance time delay is checked in block 120. If the cursor advance time delay has elapsed, then the displayed character is output in block 140 and the cursor is advanced to the next character position.
For example, returning to the above example of the xe2x80x9c2, A, B, Cxe2x80x9d key, first pressing the xe2x80x9c2, A, B, Cxe2x80x9d key results in the xe2x80x9c2xe2x80x9d being displayed. If xe2x80x9c2xe2x80x9d is the desired character, then when the cursor advance time delay has elapsed, the xe2x80x9c2xe2x80x9d will be output and the cursor advanced to the next character position. If the xe2x80x9c2xe2x80x9d is not the desired character, and, before the cursor advance time delay has elapsed, the xe2x80x9c2, A, B, Cxe2x80x9d key is pressed yet again the xe2x80x9cAxe2x80x9d is displayed. If the xe2x80x9cAxe2x80x9d is the desired character, then when the cursor advance time delay has elapsed, the xe2x80x9cAxe2x80x9d will be output and the cursor advanced. If the xe2x80x9cAxe2x80x9d is not the desired character and, before the cursor advance time delay has elapsed, the xe2x80x9c2, A, B, Cxe2x80x9d key is pressed yet again and the xe2x80x9cBxe2x80x9d is displayed. If the xe2x80x9cBxe2x80x9d is the desired character, then when the cursor advance time delay has elapsed, the xe2x80x9cBxe2x80x9d will be output and the cursor advanced. If the xe2x80x9cBxe2x80x9d is not the desired character, and, before the timer expires, the xe2x80x9c2, A, B, Cxe2x80x9d key is pressed yet again and the xe2x80x9cCxe2x80x9d is displayed. In many multi-tap""systems, repeating the above-described process once more repeats the process of step;ping through the xe2x80x9c2, A, B, Cxe2x80x9d sequence as described above.
The cursor advance time delay described above is typically set to approximately 1.5 seconds. 1.5 seconds provides sufficient time for an average user to decide whether the displayed character is the desired character or not. Unfortunately, this default time also limits the absolute xe2x80x9ctypingxe2x80x9d or data entry speed on a multi-tap keyboard to approximately 1.5 seconds per keystroke. For users that have faster data-entry abilities, this 1.5 seconds per keystroke reduces the user friendliness and usefulness of the multi-tap device.
A system and method of determining a dynamic cursor advance time delay for a multi-tap key is disclosed. First, an elapsed time between a selection of a first key and a selection of a second key is measured. The measured elapsed time is then compared to a current cursor advance time delay. The current cursor advance time delay is then adjusted. In one embodiment, measuring the elapsed time between the selection of the first key and the selection of the second key includes averaging the elapsed time with previously recorded elapsed times.
In one embodiment the dynamic cursor advance time improves a user interface by substantially eliminating the requirement for a user to wait for a multi-tap key cursor advance delay because the delay is automatically adjusted to the user""s own personal multi-tap key data entry speed.